Run this command to install the SDK:

npm install cloudmersive-convert-api-client --save


Or add this snippet to your package.json:

  "dependencies": {
    "cloudmersive-convert-api-client": "^2.6.3"
  }


var CloudmersiveConvertApiClient = require('cloudmersive-convert-api-client');
var defaultClient = CloudmersiveConvertApiClient.ApiClient.instance;

// Configure API key authorization: Apikey
var Apikey = defaultClient.authentications['Apikey'];
Apikey.apiKey = 'YOUR API KEY';



var apiInstance = new CloudmersiveConvertApiClient.ConvertDocumentApi();

var inputFile1 = Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer); // File | First input file to perform the operation on.

var inputFile2 = Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer); // File | Second input file to perform the operation on.

var opts = { 
  'inputFile3': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Third input file to perform the operation on.
  'inputFile4': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Fourth input file to perform the operation on.
  'inputFile5': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Fifth input file to perform the operation on.
  'inputFile6': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Sixth input file to perform the operation on.
  'inputFile7': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Seventh input file to perform the operation on.
  'inputFile8': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Eighth input file to perform the operation on.
  'inputFile9': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Ninth input file to perform the operation on.
  'inputFile10': Buffer.from(fs.readFileSync("C:\\temp\\inputfile").buffer), // File | Tenth input file to perform the operation on.
  'worksheetNames': "worksheetNames_example" // String | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names.
};

var callback = function(error, data, response) {
  if (error) {
    console.error(error);
  } else {
    console.log('API called successfully. Returned data: ' + data);
  }
};
apiInstance.convertDocumentCsvMultiToXlsx(inputFile1, inputFile2, opts, callback);

Run this command to install the SDK:

pip install cloudmersive-convert-api-client


from __future__ import print_function
import time
import cloudmersive_convert_api_client
from cloudmersive_convert_api_client.rest import ApiException
from pprint import pprint

# Configure API key authorization: Apikey
configuration = cloudmersive_convert_api_client.Configuration()
configuration.api_key['Apikey'] = 'YOUR_API_KEY'



# create an instance of the API class
api_instance = cloudmersive_convert_api_client.ConvertDocumentApi(cloudmersive_convert_api_client.ApiClient(configuration))
input_file1 = '/path/to/file' # file | First input file to perform the operation on.
input_file2 = '/path/to/file' # file | Second input file to perform the operation on.
input_file3 = '/path/to/file' # file | Third input file to perform the operation on. (optional)
input_file4 = '/path/to/file' # file | Fourth input file to perform the operation on. (optional)
input_file5 = '/path/to/file' # file | Fifth input file to perform the operation on. (optional)
input_file6 = '/path/to/file' # file | Sixth input file to perform the operation on. (optional)
input_file7 = '/path/to/file' # file | Seventh input file to perform the operation on. (optional)
input_file8 = '/path/to/file' # file | Eighth input file to perform the operation on. (optional)
input_file9 = '/path/to/file' # file | Ninth input file to perform the operation on. (optional)
input_file10 = '/path/to/file' # file | Tenth input file to perform the operation on. (optional)
worksheet_names = 'worksheet_names_example' # str | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names. (optional)

try:
    # Convert Multiple CSV Files into a Single XLSX Spreadsheet
    api_response = api_instance.convert_document_csv_multi_to_xlsx(input_file1, input_file2, input_file3=input_file3, input_file4=input_file4, input_file5=input_file5, input_file6=input_file6, input_file7=input_file7, input_file8=input_file8, input_file9=input_file9, input_file10=input_file10, worksheet_names=worksheet_names)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling ConvertDocumentApi->convert_document_csv_multi_to_xlsx: %s\n" % e)

Run this command to install the SDK:

Install-Package Cloudmersive.APIClient.NET.DocumentAndDataConvert -Version 3.4.2


using System;
using System.Diagnostics;
using Cloudmersive.APIClient.NET.DocumentAndDataConvert.Api;
using Cloudmersive.APIClient.NET.DocumentAndDataConvert.Client;
using Cloudmersive.APIClient.NET.DocumentAndDataConvert.Model;

namespace Example
{
    public class ConvertDocumentCsvMultiToXlsxExample
    {
        public void main()
        {
            // Configure API key authorization: Apikey
            Configuration.Default.AddApiKey("Apikey", "YOUR_API_KEY");
            
            

            var apiInstance = new ConvertDocumentApi();
            var inputFile1 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | First input file to perform the operation on.
            var inputFile2 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Second input file to perform the operation on.
            var inputFile3 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Third input file to perform the operation on. (optional) 
            var inputFile4 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Fourth input file to perform the operation on. (optional) 
            var inputFile5 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Fifth input file to perform the operation on. (optional) 
            var inputFile6 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Sixth input file to perform the operation on. (optional) 
            var inputFile7 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Seventh input file to perform the operation on. (optional) 
            var inputFile8 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Eighth input file to perform the operation on. (optional) 
            var inputFile9 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Ninth input file to perform the operation on. (optional) 
            var inputFile10 = new System.IO.FileStream("C:\\temp\\inputfile", System.IO.FileMode.Open); // System.IO.Stream | Tenth input file to perform the operation on. (optional) 
            var worksheetNames = worksheetNames_example;  // string | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names. (optional) 

            try
            {
                // Convert Multiple CSV Files into a Single XLSX Spreadsheet
                byte[] result = apiInstance.ConvertDocumentCsvMultiToXlsx(inputFile1, inputFile2, inputFile3, inputFile4, inputFile5, inputFile6, inputFile7, inputFile8, inputFile9, inputFile10, worksheetNames);
                Debug.WriteLine(result);
            }
            catch (Exception e)
            {
                Debug.Print("Exception when calling ConvertDocumentApi.ConvertDocumentCsvMultiToXlsx: " + e.Message );
            }
        }
    }
}

To install with Maven, add a reference to the repository in pom.xml:

<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
    </repository>
</repositories>


And add a reference to the dependency in pom.xml:

<dependencies>
<dependency>
    <groupId>com.github.Cloudmersive</groupId>
    <artifactId>Cloudmersive.APIClient.Java</artifactId>
    <version>v4.25</version>
</dependency>
</dependencies>


To install with Gradle, add it in your root build.gradle at the end of repositories:

allprojects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}


And add the dependency in build.gradle:

dependencies {
        implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
}


// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.ConvertDocumentApi;

ApiClient defaultClient = Configuration.getDefaultApiClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");

ConvertDocumentApi apiInstance = new ConvertDocumentApi();
File inputFile1 = new File("/path/to/file"); // File | First input file to perform the operation on.
File inputFile2 = new File("/path/to/file"); // File | Second input file to perform the operation on.
File inputFile3 = new File("/path/to/file"); // File | Third input file to perform the operation on.
File inputFile4 = new File("/path/to/file"); // File | Fourth input file to perform the operation on.
File inputFile5 = new File("/path/to/file"); // File | Fifth input file to perform the operation on.
File inputFile6 = new File("/path/to/file"); // File | Sixth input file to perform the operation on.
File inputFile7 = new File("/path/to/file"); // File | Seventh input file to perform the operation on.
File inputFile8 = new File("/path/to/file"); // File | Eighth input file to perform the operation on.
File inputFile9 = new File("/path/to/file"); // File | Ninth input file to perform the operation on.
File inputFile10 = new File("/path/to/file"); // File | Tenth input file to perform the operation on.
String worksheetNames = "worksheetNames_example"; // String | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names.
try {
    byte[] result = apiInstance.convertDocumentCsvMultiToXlsx(inputFile1, inputFile2, inputFile3, inputFile4, inputFile5, inputFile6, inputFile7, inputFile8, inputFile9, inputFile10, worksheetNames);
    System.out.println(result);
} catch (ApiException e) {
    System.err.println("Exception when calling ConvertDocumentApi#convertDocumentCsvMultiToXlsx");
    e.printStackTrace();
}

Run this command to install the SDK:

composer require cloudmersive/cloudmersive_document_convert_api_client


<?php
require_once(__DIR__ . '/vendor/autoload.php');

// Configure API key authorization: Apikey
$config = Swagger\Client\Configuration::getDefaultConfiguration()->setApiKey('Apikey', 'YOUR_API_KEY');



$apiInstance = new Swagger\Client\Api\ConvertDocumentApi(
    
    
    new GuzzleHttp\Client(),
    $config
);
$input_file1 = "/path/to/file"; // \SplFileObject | First input file to perform the operation on.
$input_file2 = "/path/to/file"; // \SplFileObject | Second input file to perform the operation on.
$input_file3 = "/path/to/file"; // \SplFileObject | Third input file to perform the operation on.
$input_file4 = "/path/to/file"; // \SplFileObject | Fourth input file to perform the operation on.
$input_file5 = "/path/to/file"; // \SplFileObject | Fifth input file to perform the operation on.
$input_file6 = "/path/to/file"; // \SplFileObject | Sixth input file to perform the operation on.
$input_file7 = "/path/to/file"; // \SplFileObject | Seventh input file to perform the operation on.
$input_file8 = "/path/to/file"; // \SplFileObject | Eighth input file to perform the operation on.
$input_file9 = "/path/to/file"; // \SplFileObject | Ninth input file to perform the operation on.
$input_file10 = "/path/to/file"; // \SplFileObject | Tenth input file to perform the operation on.
$worksheet_names = "worksheet_names_example"; // string | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names.

try {
    $result = $apiInstance->convertDocumentCsvMultiToXlsx($input_file1, $input_file2, $input_file3, $input_file4, $input_file5, $input_file6, $input_file7, $input_file8, $input_file9, $input_file10, $worksheet_names);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling ConvertDocumentApi->convertDocumentCsvMultiToXlsx: ', $e->getMessage(), PHP_EOL;
}
?>

Add the Objective-C client to your Podfile:

pod 'CloudmersiveDocumentAndDataConvertApiClient', '~> 1.0'


CMDefaultConfiguration *apiConfig = [CMDefaultConfiguration sharedConfig];

// Configure API key authorization: (authentication scheme: Apikey)
[apiConfig setApiKey:@"YOUR_API_KEY" forApiKeyIdentifier:@"Apikey"];




NSURL* inputFile1 = [NSURL fileURLWithPath:@"/path/to/file"]; // First input file to perform the operation on.
NSURL* inputFile2 = [NSURL fileURLWithPath:@"/path/to/file"]; // Second input file to perform the operation on.
NSURL* inputFile3 = [NSURL fileURLWithPath:@"/path/to/file"]; // Third input file to perform the operation on. (optional)
NSURL* inputFile4 = [NSURL fileURLWithPath:@"/path/to/file"]; // Fourth input file to perform the operation on. (optional)
NSURL* inputFile5 = [NSURL fileURLWithPath:@"/path/to/file"]; // Fifth input file to perform the operation on. (optional)
NSURL* inputFile6 = [NSURL fileURLWithPath:@"/path/to/file"]; // Sixth input file to perform the operation on. (optional)
NSURL* inputFile7 = [NSURL fileURLWithPath:@"/path/to/file"]; // Seventh input file to perform the operation on. (optional)
NSURL* inputFile8 = [NSURL fileURLWithPath:@"/path/to/file"]; // Eighth input file to perform the operation on. (optional)
NSURL* inputFile9 = [NSURL fileURLWithPath:@"/path/to/file"]; // Ninth input file to perform the operation on. (optional)
NSURL* inputFile10 = [NSURL fileURLWithPath:@"/path/to/file"]; // Tenth input file to perform the operation on. (optional)
NSString* worksheetNames = @"worksheetNames_example"; // Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names. (optional)

CMConvertDocumentApi*apiInstance = [[CMConvertDocumentApi alloc] init];

// Convert Multiple CSV Files into a Single XLSX Spreadsheet
[apiInstance convertDocumentCsvMultiToXlsxWithInputFile1:inputFile1
              inputFile2:inputFile2
              inputFile3:inputFile3
              inputFile4:inputFile4
              inputFile5:inputFile5
              inputFile6:inputFile6
              inputFile7:inputFile7
              inputFile8:inputFile8
              inputFile9:inputFile9
              inputFile10:inputFile10
              worksheetNames:worksheetNames
          completionHandler: ^(NSData* output, NSError* error) {
                        if (output) {
                            NSLog(@"%@", output);
                        }
                        if (error) {
                            NSLog(@"Error calling CMConvertDocumentApi->convertDocumentCsvMultiToXlsx: %@", error);
                        }
                    }];

Add the Ruby client to your Gemfile:

gem 'cloudmersive-convert-api-client', '~> 2.1.6'


# load the gem
require 'cloudmersive-convert-api-client'
# setup authorization
CloudmersiveConvertApiClient.configure do |config|
  # Configure API key authorization: Apikey
  config.api_key['Apikey'] = 'YOUR API KEY'
  # Uncomment the following line to set a prefix for the API key, e.g. 'Bearer' (defaults to nil)
  #config.api_key_prefix['Apikey'] = 'Bearer'
end

api_instance = CloudmersiveConvertApiClient::ConvertDocumentApi.new

input_file1 = File.new('/path/to/inputfile') # File | First input file to perform the operation on.

input_file2 = File.new('/path/to/inputfile') # File | Second input file to perform the operation on.

opts = { 
  input_file3: File.new('/path/to/inputfile'), # File | Third input file to perform the operation on.
  input_file4: File.new('/path/to/inputfile'), # File | Fourth input file to perform the operation on.
  input_file5: File.new('/path/to/inputfile'), # File | Fifth input file to perform the operation on.
  input_file6: File.new('/path/to/inputfile'), # File | Sixth input file to perform the operation on.
  input_file7: File.new('/path/to/inputfile'), # File | Seventh input file to perform the operation on.
  input_file8: File.new('/path/to/inputfile'), # File | Eighth input file to perform the operation on.
  input_file9: File.new('/path/to/inputfile'), # File | Ninth input file to perform the operation on.
  input_file10: File.new('/path/to/inputfile'), # File | Tenth input file to perform the operation on.
  worksheet_names: 'worksheet_names_example' # String | Optional; Specify the name of each CSV's worksheet in order, separated with commas (e.g. \"worksheet1,worksheet2,worksheet3\"). Defaults to the names of the input CSV files. Recommended when inputting the files directly, without file names.
}

begin
  #Convert Multiple CSV Files into a Single XLSX Spreadsheet
  result = api_instance.convert_document_csv_multi_to_xlsx(input_file1, input_file2, opts)
  p result
rescue CloudmersiveConvertApiClient::ApiError => e
  puts "Exception when calling ConvertDocumentApi->convert_document_csv_multi_to_xlsx: #{e}"
end

Download and copy the /client folder into your Apex project:

Download Apex Client

SwagConvertDocumentApi api = new SwagConvertDocumentApi();
SwagClient client = api.getClient();

// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) client.getAuthentication('Apikey');
Apikey.setApiKey('YOUR API KEY');

Map<String, Object> params = new Map<String, Object>{
    'inputFile1' => Blob.valueOf('Sample text file\nContents'),
    'inputFile2' => Blob.valueOf('Sample text file\nContents'),
    'inputFile3' => Blob.valueOf('Sample text file\nContents'),
    'inputFile4' => Blob.valueOf('Sample text file\nContents'),
    'inputFile5' => Blob.valueOf('Sample text file\nContents'),
    'inputFile6' => Blob.valueOf('Sample text file\nContents'),
    'inputFile7' => Blob.valueOf('Sample text file\nContents'),
    'inputFile8' => Blob.valueOf('Sample text file\nContents'),
    'inputFile9' => Blob.valueOf('Sample text file\nContents'),
    'inputFile10' => Blob.valueOf('Sample text file\nContents'),
    'worksheetNames' => 'worksheetNames_example'
};

try {
    // cross your fingers
    Blob result = api.convertDocumentCsvMultiToXlsx(params);
    System.debug(result);
} catch (Swagger.ApiException e) {
    // ...handle your exceptions
}

Install libcurl in your C/C++ project:

libcurl/7.75.0
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
     curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
     curl_easy_setopt(curl, CURLOPT_URL, "https://api.cloudmersive.com/convert/csv/multi/to/xlsx");
     curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
     curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
     struct curl_slist *headers = NULL;
     headers = curl_slist_append(headers, "worksheetNames: <string>");
     headers = curl_slist_append(headers, "Content-Type: multipart/form-data");
     headers = curl_slist_append(headers, "Apikey: YOUR-API-KEY-HERE");
     curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
     curl_mime *mime;
     curl_mimepart *part;
     mime = curl_mime_init(curl);
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile1");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile2");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile3");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile4");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile5");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile6");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile7");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile8");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile9");
     curl_mime_filedata(part, "/path/to/file");
     part = curl_mime_addpart(mime);
     curl_mime_name(part, "inputFile10");
     curl_mime_filedata(part, "/path/to/file");
     curl_easy_setopt(curl, CURLOPT_MIMEPOST, mime);
     res = curl_easy_perform(curl);
     curl_mime_free(mime);
}
curl_easy_cleanup(curl);
curl --location --request POST 'https://api.cloudmersive.com/convert/csv/multi/to/xlsx' \
--header 'worksheetNames: <string>' \
--header 'Content-Type: multipart/form-data' \
--header 'Apikey: YOUR-API-KEY-HERE' \
--form 'inputFile1=@"/path/to/file"' \
--form 'inputFile2=@"/path/to/file"' \
--form 'inputFile3=@"/path/to/file"' \
--form 'inputFile4=@"/path/to/file"' \
--form 'inputFile5=@"/path/to/file"' \
--form 'inputFile6=@"/path/to/file"' \
--form 'inputFile7=@"/path/to/file"' \
--form 'inputFile8=@"/path/to/file"' \
--form 'inputFile9=@"/path/to/file"' \
--form 'inputFile10=@"/path/to/file"'
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

var semaphore = DispatchSemaphore (value: 0)

let parameters = [
     [
          "key": "inputFile1",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile2",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile3",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile4",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile5",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile6",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile7",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile8",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile9",
          "src": "/path/to/file",
          "type": "file"
     ],
     [
          "key": "inputFile10",
          "src": "/path/to/file",
          "type": "file"
     ]] as [[String : Any]]

let boundary = "Boundary-\(UUID().uuidString)"
var body = ""
var error: Error? = nil
for param in parameters {
     if param["disabled"] == nil {
          let paramName = param["key"]!
          body += "--\(boundary)\r\n"
          body += "Content-Disposition:form-data; name=\"\(paramName)\""
          if param["contentType"] != nil {
               body += "\r\nContent-Type: \(param["contentType"] as! String)"
          }
          let paramType = param["type"] as! String
          if paramType == "text" {
               let paramValue = param["value"] as! String
               body += "\r\n\r\n\(paramValue)\r\n"
          } else {
               let paramSrc = param["src"] as! String
               let fileData = try NSData(contentsOfFile:paramSrc, options:[]) as Data
               let fileContent = String(data: fileData, encoding: .utf8)!
               body += "; filename=\"\(paramSrc)\"\r\n"
                 + "Content-Type: \"content-type header\"\r\n\r\n\(fileContent)\r\n"
          }
     }
}
body += "--\(boundary)--\r\n";
let postData = body.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://api.cloudmersive.com/convert/csv/multi/to/xlsx")!,timeoutInterval: Double.infinity)
request.addValue("<string>", forHTTPHeaderField: "worksheetNames")
request.addValue("multipart/form-data", forHTTPHeaderField: "Content-Type")
request.addValue("YOUR-API-KEY-HERE", forHTTPHeaderField: "Apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
     guard let data = data else {
          print(String(describing: error))
          semaphore.signal()
          return
     }
     print(String(data: data, encoding: .utf8)!)
     semaphore.signal()
}

task.resume()
semaphore.wait()

This code snippet uses the built-in JavaScript XHR request capability

var data = new FormData();
data.append("inputFile1", fileInput.files[0], "file");
 data.append("inputFile2", fileInput.files[0], "file");
 data.append("inputFile3", fileInput.files[0], "file");
 data.append("inputFile4", fileInput.files[0], "file");
 data.append("inputFile5", fileInput.files[0], "file");
 data.append("inputFile6", fileInput.files[0], "file");
 data.append("inputFile7", fileInput.files[0], "file");
 data.append("inputFile8", fileInput.files[0], "file");
 data.append("inputFile9", fileInput.files[0], "file");
 data.append("inputFile10", fileInput.files[0], "file");
 
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
     if(this.readyState === 4) {
          console.log(this.responseText);
     }
});

xhr.open("POST", "https://api.cloudmersive.com/convert/csv/multi/to/xlsx");
xhr.setRequestHeader("worksheetNames", "<string>");

xhr.setRequestHeader("Apikey", "YOUR-API-KEY-HERE");

xhr.send(data);
package main

import (
     "fmt"
     "bytes"
     "mime/multipart"
     "os"
     "path/filepath"
     "io"
     "net/http"
     "io/ioutil"
)

func main() {

     url := "https://api.cloudmersive.com/convert/csv/multi/to/xlsx"
     method := "POST"

     payload := &bytes.Buffer{}
     writer := multipart.NewWriter(payload)
     file, errFile1 := os.Open("/path/to/file")
     defer file.Close()
     part1,
         errFile1 := writer.CreateFormFile("inputFile1",filepath.Base("/path/to/file"))
     _, errFile1 = io.Copy(part1, file)
     if errFile1 != nil {
          fmt.Println(errFile1)
          return
     }
     file, errFile2 := os.Open("/path/to/file")
     defer file.Close()
     part2,
         errFile2 := writer.CreateFormFile("inputFile2",filepath.Base("/path/to/file"))
     _, errFile2 = io.Copy(part2, file)
     if errFile2 != nil {
          fmt.Println(errFile2)
          return
     }
     file, errFile3 := os.Open("/path/to/file")
     defer file.Close()
     part3,
         errFile3 := writer.CreateFormFile("inputFile3",filepath.Base("/path/to/file"))
     _, errFile3 = io.Copy(part3, file)
     if errFile3 != nil {
          fmt.Println(errFile3)
          return
     }
     file, errFile4 := os.Open("/path/to/file")
     defer file.Close()
     part4,
         errFile4 := writer.CreateFormFile("inputFile4",filepath.Base("/path/to/file"))
     _, errFile4 = io.Copy(part4, file)
     if errFile4 != nil {
          fmt.Println(errFile4)
          return
     }
     file, errFile5 := os.Open("/path/to/file")
     defer file.Close()
     part5,
         errFile5 := writer.CreateFormFile("inputFile5",filepath.Base("/path/to/file"))
     _, errFile5 = io.Copy(part5, file)
     if errFile5 != nil {
          fmt.Println(errFile5)
          return
     }
     file, errFile6 := os.Open("/path/to/file")
     defer file.Close()
     part6,
         errFile6 := writer.CreateFormFile("inputFile6",filepath.Base("/path/to/file"))
     _, errFile6 = io.Copy(part6, file)
     if errFile6 != nil {
          fmt.Println(errFile6)
          return
     }
     file, errFile7 := os.Open("/path/to/file")
     defer file.Close()
     part7,
         errFile7 := writer.CreateFormFile("inputFile7",filepath.Base("/path/to/file"))
     _, errFile7 = io.Copy(part7, file)
     if errFile7 != nil {
          fmt.Println(errFile7)
          return
     }
     file, errFile8 := os.Open("/path/to/file")
     defer file.Close()
     part8,
         errFile8 := writer.CreateFormFile("inputFile8",filepath.Base("/path/to/file"))
     _, errFile8 = io.Copy(part8, file)
     if errFile8 != nil {
          fmt.Println(errFile8)
          return
     }
     file, errFile9 := os.Open("/path/to/file")
     defer file.Close()
     part9,
         errFile9 := writer.CreateFormFile("inputFile9",filepath.Base("/path/to/file"))
     _, errFile9 = io.Copy(part9, file)
     if errFile9 != nil {
          fmt.Println(errFile9)
          return
     }
     file, errFile10 := os.Open("/path/to/file")
     defer file.Close()
     part10,
         errFile10 := writer.CreateFormFile("inputFile10",filepath.Base("/path/to/file"))
     _, errFile10 = io.Copy(part10, file)
     if errFile10 != nil {
          fmt.Println(errFile10)
          return
     }
     err := writer.Close()
     if err != nil {
          fmt.Println(err)
          return
     }


     client := &http.Client {
     }
     req, err := http.NewRequest(method, url, payload)

     if err != nil {
          fmt.Println(err)
          return
     }
     req.Header.Add("worksheetNames", "<string>")
     req.Header.Add("Content-Type", "multipart/form-data")
     req.Header.Add("Apikey", "YOUR-API-KEY-HERE")

     req.Header.Set("Content-Type", writer.FormDataContentType())
     res, err := client.Do(req)
     if err != nil {
          fmt.Println(err)
          return
     }
     defer res.Body.Close()

     body, err := ioutil.ReadAll(res.Body)
     if err != nil {
          fmt.Println(err)
          return
     }
     fmt.Println(string(body))
}

Walkthrough Video